我将网站链接存储在MYSQL数据库中,我可以在PHP中输出数据,我正在使用PHP DOM来提取数据。我输出了“CBS今天上午:星期六新”的文字,使用以下代码:
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'myusername');
define('DB_PASSWORD', 'mypassword');
define('DB_DATABASE', 'mydbname');
$errmsg_arr = array();
$errflag = false;
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link)
{
die('Failed to connect to server: ' . mysql_error());
}
$db = mysql_select_db(DB_DATABASE);
if(!$db)
{
die("Unable to select database");
}
function clean($var)
{
return mysql_real_escape_string(strip_tags($var));
}
$channels = clean($_GET['channels']);
$id = clean($_GET['id']);
if($errflag)
{
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
echo implode('<br />',$errmsg_arr);
}
else
{
$insert = array();
if(isset($_GET['channels']))
{
$insert[] = 'channels = \'' . clean($_GET['channels']) .'\'';
}
if(isset($_GET['id']))
{
$insert[] = 'id = \'' . clean($_GET['id']) . '\'';
}
if($channels && $id)
{
$qrytable1="SELECT id, channels, links FROM tvguide WHERE channels='$channels' && id='$id'";
$result1=mysql_query($qrytable1) or die('Error:<br />' . $qry . '<br />' . mysql_error());
while ($row = mysql_fetch_array($result1))
{
$links = $row['links'];
include ('simple_html_dom.php');
$html = file_get_html($links);
$title1 = $html->find('li[id=row1-1]', 0)->plaintext; // with this
if ($html->find('li[id=row1-1]', 0)->plaintext == ('NEW'))
{
$output = preg_replace('/\d:\d+/', '', $title1);
$output = '<span id="title1">'.str_replace(array("\t", ' ', '<BR>','</BR>', 'AM','PM'), '', $output).'</span><br><br>';
$output = str_replace('<span id="title1"> ', '<span id="title1">', $output);
$output = str_replace(' "', ': ', $output);
$output = str_replace(' NEW', '', $output);
echo $output;
}
}
}
?>
以下是HTML源代码:
<span id="title1">CBS This Morning: Saturday NEW</span><br><br>
在这种情况下,我试图在最后查找包含文本是否如果conttain文本有一个名为“NEW”的文本,那么它将被替换为空文本。我尝试在if ($html->find('li[id=row1-1]', 0)->plaintext == ('NEW'))
之前使用它来查找包含文本,然后再做一些事情,但它没有检查出来。我想我可能做错了,但我不太确定。有没有人知道如何使用if语句检查文本末尾的包含文本,以便我可以将包含文本替换为空文本?
答案 0 :(得分:1)
==
与整个字符串完全匹配。您需要使用搜索子字符串的函数:
if (strpos($title1, 'NEW') !== false) {
...
}
如果您只想在标题末尾识别它,可以使用正则表达式:
if (preg_match('/NEW$/', $title1) {
...
}
或者您可以使用substr()
:
if (substr($title1, -3) == 'NEW') {
...
}