PHP Trim после извлечения данных с MySQL - PullRequest
1 голос
/ 05 октября 2011

Так что я новичок в PHP, и у меня возникли некоторые трудности с функцией обрезки.

В основном мне нужно

  • trim @ example.com из всех значений agent_email.
  • обрезать источник трафика до 30 символов, т.е. http://www.example.com/ex/test...

Вот мой исходный код.

<?php

include "../include/setup.inc.php";


$query="SELECT offer_id,title,email,phone,site,zip,price,return_customer,request_date,traffic_source,agent_email,released FROM jos_quote 
     where request_date >= '2011-10-04' order by request_date";
$result = mysql_query($query);          
    if (!$result) {echo "<p><b>".$query ."</b></p>";echo 'MySQL Error: ' . mysql_error(); return;}
$num_rows = mysql_num_rows($result);
    echo '<br><table border="1" align="center" width="700px">
     <tr bgcolor="#FF8000"><td colspan="11" align="center">Total: '.$num_rows.'quotes -  Date Range: '.$_POST['date1'].' -- '.$_POST['date2'].' </td></tr>
     <tr><th>Title</th><th>Email</th><th>Site</th><th>Zip</th><th>Price</th>
<th>Return Customer</th><th>Request Date</th><th>Agent</th><th>Released</th><th>Traffic Source</th>';
while ($row = mysql_fetch_assoc($result)) {
    echo '<tr>
    <td>'.$row['title'].'</td>
    <td>'.$row['email'].'</td>
    <td>'.$row['site'].'</td>
    <td>'.$row['zip'].'</td>
    <td>'.$row['price'].'</td>                               
    <td>'.$row['return_customer'].'</td>                                
    <td>'.$row['request_date'].'</td>                                
    <td>'.$row['agent_email'].'</td>                                    
    <td>'.$row['released'].'</td>                                
     <td>'.$row['traffic_source'].'</td>                                                 
     </tr>';
}
echo '</table>';
$query="select agent_email,num_quote,num_receive,set_date from quote_distro where set_date  >= '2011-10-04'";
$result = mysql_query($query);          
    if (!$result) {echo "<p><b>".$query ."</b></p>";echo 'MySQL Error: ' . mysql_error();     return;}
    while ($row = mysql_fetch_assoc($result)) {
$quote_info[$row['agent_email']][$row['set_date']] =$row;

}


}


?>

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Это не то, что делает функция trim ().trim () удаляет пробелы из начала и конца строки.

Мне нужно подрезать @ example.com из всех значений agent_email.

Для этого вы можете использовать str_replace.Например, чтобы удалить @ example.com из строки.

$string = str_replace ('@example.com', '', $string);

Если вместо этого вы хотите удалить что-либо после знака (@), вы можете использовать разнесение:

list($string) = explode('@', $string);

Мне также нужно сократить ресурс traffic_source до 30 символов

Это опять другая концепция.Вы можете использовать функцию php substr для этого:

$string = substr($string, 0, 30);

Если вы хотите добавить многоточие только тогда, когда строка была усечена:

if (strlen($string) > 30) {
    $string = substr($string, 0, 30) . '&hellip;';  
}
0 голосов
/ 05 октября 2011

Я бы сделал это в MySQL, а не в PHP.Случай с источником трафика так же прост:

SELECT LEFT(traffic_source, 30) as traffic_source FROM (...)

Для @ example.com вы можете использовать REPLACE:

SELECT REPLACE(email, '@example.com', '') AS email (...)

Вы также можете использовать SUBSTRING

SELECT SUBSTRING(email, 0, INSTR(url, '@')) AS email

Эти и другие строковые функции документированы здесь .

0 голосов
/ 05 октября 2011
substr($row['traffic_source'], 0, 30);
str_replace('@example.com', '', $row['agent_email']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...